// CodeGear C++Builder
// Copyright (c) 1995, 2015 by Embarcadero Technologies, Inc.
// All rights reserved

// (DO NOT EDIT: machine generated header) 'libswscale.pas' rev: 30.00 (Windows)

#ifndef LibswscaleHPP
#define LibswscaleHPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member 
#pragma pack(push,8)
#include <System.hpp>
#include <SysInit.hpp>
#include <ffmpeg_types.hpp>
#include <libavutil.hpp>

//-- user supplied -----------------------------------------------------------

namespace Libswscale
{
//-- forward type declarations -----------------------------------------------
struct SwsVector;
struct SwsFilter;
struct DECLSPEC_DRECORD SwsContext
{
};


//-- type declarations -------------------------------------------------------
struct DECLSPEC_DRECORD SwsVector
{
public:
	double *coeff;
	int length;
};


typedef SwsVector *pSwsVector;

struct DECLSPEC_DRECORD SwsFilter
{
public:
	SwsVector *lumH;
	SwsVector *lumV;
	SwsVector *chrH;
	SwsVector *chrV;
};


typedef SwsFilter *pSwsFilter;

typedef SwsContext *pSwsContext;

typedef Ffmpeg_types::array_uint8_t Tsws_array_uint8_t;

typedef Ffmpeg_types::array_uint8_t *psws_array_uint8_t;

typedef Ffmpeg_types::array_int Tsws_array_int;

typedef Ffmpeg_types::array_int *psws_array_int;

typedef Ffmpeg_types::array4_int Tsws_array4_int;

typedef Ffmpeg_types::array4_int *psws_array4_int;

//-- var, const, procedure ---------------------------------------------------
static const System::Int8 LIBAVUTIL_VERSION_MAJOR = System::Int8(0x38);
#define LIBAVUTIL_VERSION_MAJOR_STR L"56"
static const System::Int8 LIBAVUTIL_VERSION_MINOR = System::Int8(0x1f);
static const System::Int8 LIBAVUTIL_VERSION_MICRO = System::Int8(0x64);
#define FFMPEG_VERSION L"4.2.2"
static const int LIBAVUTIL_VERSION_INT = int(0x381f64);
static const System::Int8 LIBSWSCALE_VERSION_MAJOR = System::Int8(0x5);
static const System::WideChar LIBSWSCALE_VERSION_MAJOR_STR = (System::WideChar)(0x35);
static const System::Int8 LIBSWSCALE_VERSION_MINOR = System::Int8(0x5);
static const System::Int8 LIBSWSCALE_VERSION_MICRO = System::Int8(0x64);
static const System::Int8 LIBAVCODEC_VERSION_MAJOR = System::Int8(0x3a);
#define LIBAVCODEC_VERSION_MAJOR_STR L"58"
static const System::Int8 LIBAVCODEC_VERSION_MINOR = System::Int8(0x36);
static const System::Int8 LIBAVCODEC_VERSION_MICRO = System::Int8(0x64);
static const System::Int8 LIBAVDEVICE_VERSION_MAJOR = System::Int8(0x3a);
#define LIBAVDEVICE_VERSION_MAJOR_STR L"58"
static const System::Int8 LIBAVDEVICE_VERSION_MINOR = System::Int8(0x8);
static const System::Int8 LIBAVDEVICE_VERSION_MICRO = System::Int8(0x64);
static const System::Int8 LIBAVFORMAT_VERSION_MAJOR = System::Int8(0x3a);
#define LIBAVFORMAT_VERSION_MAJOR_STR L"58"
static const System::Int8 LIBAVFORMAT_VERSION_MINOR = System::Int8(0x1d);
static const System::Int8 LIBAVFORMAT_VERSION_MICRO = System::Int8(0x64);
static const System::Int8 FF_API_R_FRAME_RATE = System::Int8(0x1);
static const System::Int8 LIBPOSTPROC_VERSION_MAJOR = System::Int8(0x37);
#define LIBPOSTPROC_VERSION_MAJOR_STR L"55"
static const System::Int8 LIBPOSTPROC_VERSION_MINOR = System::Int8(0x5);
static const System::Int8 LIBPOSTPROC_VERSION_MICRO = System::Int8(0x64);
static const System::Int8 LIBSWRESAMPLE_VERSION_MAJOR = System::Int8(0x3);
static const System::WideChar LIBSWRESAMPLE_VERSION_MAJOR_STR = (System::WideChar)(0x33);
static const System::Int8 LIBSWRESAMPLE_VERSION_MINOR = System::Int8(0x5);
static const System::Int8 LIBSWRESAMPLE_VERSION_MICRO = System::Int8(0x64);
static const System::Int8 LIBAVFILTER_VERSION_MAJOR = System::Int8(0x7);
static const System::WideChar LIBAVFILTER_VERSION_MAJOR_STR = (System::WideChar)(0x37);
static const System::Int8 LIBAVFILTER_VERSION_MINOR = System::Int8(0x39);
static const System::Int8 LIBAVFILTER_VERSION_MICRO = System::Int8(0x64);
#define swscale_dll L"swscale-5.dll"
#define avutil_dll L"avutil-56.dll"
#define avcodec_dll L"avcodec-58.dll"
#define avdevice_dll L"avdevice-58.dll"
#define avformat_dll L"avformat-58.dll"
#define postproc_dll L"postproc-55.dll"
#define swresample_dll L"swresample-3.dll"
#define avfilter_dll L"avfilter-7.dll"
extern "C" unsigned __cdecl swscale_version(void);
extern "C" char * __cdecl swscale_configuration(void);
extern "C" char * __cdecl swscale_license(void);
static const System::Int8 SWS_FAST_BILINEAR = System::Int8(0x1);
static const System::Int8 SWS_BILINEAR = System::Int8(0x2);
static const System::Int8 SWS_BICUBIC = System::Int8(0x4);
static const System::Int8 SWS_X = System::Int8(0x8);
static const System::Int8 SWS_POINT = System::Int8(0x10);
static const System::Int8 SWS_AREA = System::Int8(0x20);
static const System::Int8 SWS_BICUBLIN = System::Int8(0x40);
static const System::Byte SWS_GAUSS = System::Byte(0x80);
static const System::Word SWS_SINC = System::Word(0x100);
static const System::Word SWS_LANCZOS = System::Word(0x200);
static const System::Word SWS_SPLINE = System::Word(0x400);
static const int SWS_SRC_V_CHR_DROP_MASK = int(0x30000);
static const System::Int8 SWS_SRC_V_CHR_DROP_SHIFT = System::Int8(0x10);
static const int SWS_PARAM_DEFAULT = int(0x1e240);
static const System::Word SWS_PRINT_INFO = System::Word(0x1000);
static const System::Word SWS_FULL_CHR_H_INT = System::Word(0x2000);
static const System::Word SWS_FULL_CHR_H_INP = System::Word(0x4000);
static const System::Word SWS_DIRECT_BGR = System::Word(0x8000);
static const int SWS_ACCURATE_RND = int(0x40000);
static const int SWS_BITEXACT = int(0x80000);
static const int SWS_ERROR_DIFFUSION = int(0x800000);
#define SWS_MAX_REDUCE_CUTOFF  (2.000000E-03)
static const System::Int8 SWS_CS_ITU709 = System::Int8(0x1);
static const System::Int8 SWS_CS_FCC = System::Int8(0x4);
static const System::Int8 SWS_CS_ITU601 = System::Int8(0x5);
static const System::Int8 SWS_CS_ITU624 = System::Int8(0x5);
static const System::Int8 SWS_CS_SMPTE170M = System::Int8(0x5);
static const System::Int8 SWS_CS_SMPTE240M = System::Int8(0x7);
static const System::Int8 SWS_CS_DEFAULT = System::Int8(0x5);
static const System::Int8 SWS_CS_BT2020 = System::Int8(0x9);
extern "C" Ffmpeg_types::pint __cdecl sws_getCoefficients(int colorspace);
extern "C" int __cdecl sws_isSupportedInput(Libavutil::AVPixelFormat pix_fmt);
extern "C" int __cdecl sws_isSupportedOutput(Libavutil::AVPixelFormat pix_fmt);
extern "C" int __cdecl sws_isSupportedEndiannessConversion(Libavutil::AVPixelFormat pix_fmt);
extern "C" pSwsContext __cdecl sws_alloc_context(void);
extern "C" int __cdecl sws_init_context(pSwsContext sws_context, pSwsFilter srcFilter, pSwsFilter dstFilter);
extern "C" void __cdecl sws_freeContext(pSwsContext SwsContext);
extern "C" pSwsContext __cdecl sws_getContext(int srcW, int srcH, Libavutil::AVPixelFormat srcFormat, int dstW, int dstH, Libavutil::AVPixelFormat dstFormat, int flags, pSwsFilter srcFilter, pSwsFilter dstFilter, const System::PDouble param);
extern "C" int __cdecl sws_scale(pSwsContext c, const psws_array_uint8_t srcSlice, const psws_array_int srcStride, int srcSliceY, int srcSliceH, psws_array_uint8_t dst, const psws_array_int dstStride)/* overload */;
extern "C" int __cdecl sws_setColorspaceDetails(pSwsContext c, const psws_array4_int inv_table, int srcRange, const psws_array4_int table, int dstRange, int brightness, int contrast, int saturation);
extern "C" int __cdecl sws_getColorspaceDetails(pSwsContext c, Ffmpeg_types::pint &inv_table, int &srcRange, Ffmpeg_types::pint &table, int &dstRange, int &brightness, int &contrast, int &saturation);
extern "C" pSwsVector __cdecl sws_allocVec(int length);
extern "C" pSwsVector __cdecl sws_getGaussianVec(double variance, double quality);
extern "C" void __cdecl sws_scaleVec(pSwsVector a, double scalar);
extern "C" void __cdecl sws_normalizeVec(pSwsVector a, double height);
extern "C" pSwsVector __cdecl sws_getConstVec(double c, int length);
extern "C" pSwsVector __cdecl sws_getIdentityVec(void);
extern "C" void __cdecl sws_convVec(pSwsVector a, pSwsVector b);
extern "C" void __cdecl sws_addVec(pSwsVector a, pSwsVector b);
extern "C" void __cdecl sws_subVec(pSwsVector a, pSwsVector b);
extern "C" void __cdecl sws_shiftVec(pSwsVector a, int shift);
extern "C" pSwsVector __cdecl sws_cloneVec(pSwsVector a);
extern "C" void __cdecl sws_printVec2(pSwsVector a, Libavutil::pAVClass log_ctx, int log_level);
extern "C" void __cdecl sws_freeVec(pSwsVector a);
extern "C" pSwsFilter __cdecl sws_getDefaultFilter(float lumaGBlur, float chromaGBlur, float lumaSharpen, float chromaSharpen, float chromaHShift, float chromaVShift, int verbose);
extern "C" void __cdecl sws_freeFilter(pSwsFilter filter);
extern "C" pSwsContext __cdecl sws_getCachedContext(pSwsContext context, int srcW, int srcH, Libavutil::AVPixelFormat srcFormat, int dstW, int dstH, Libavutil::AVPixelFormat dstFormat, int flags, pSwsFilter srcFilter, pSwsFilter dstFilter, const System::PDouble param);
extern "C" void __cdecl sws_convertPalette8ToPacked32(const System::PByte src, System::Byte &dst, int num_pixels, const System::PByte palette);
extern "C" void __cdecl sws_convertPalette8ToPacked24(const System::PByte src, System::Byte &dst, int num_pixels, const System::PByte palette);
extern "C" Libavutil::pAVClass __cdecl sws_get_class(void);
}	/* namespace Libswscale */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_LIBSWSCALE)
using namespace Libswscale;
#endif
#pragma pack(pop)
#pragma option pop

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif	// LibswscaleHPP
